import vm from '@/main'
/**
 * @param {string} path
 * @returns {Boolean}
 */
export function isExternal(path) {
  return /^(https?:|mailto:|tel:)/.test(path)
}

/**
 * @param {string} str
 * @returns {Boolean}
 */
export function validUsername(str) {
  const valid_map = ['admin', 'editor']
  return valid_map.indexOf(str.trim()) >= 0
}

/**
 * 验证数字输入框最大数值
 * @param {*} rule
 * @param {*} value
 * @param {*} callback
 */
export function checkMaxVal(rule, value, callback) {
  if (value < 0 || value > 999999999) {
    callback(new Error(vm.$t('common.validate_err.num_max_value_len_error')))
  } else {
    callback()
  }
}

/**
 * 验证是否符合电话或者手机格式（只允许包含数字和-）
 * @param rule
 * @param value
 * @param callback
 */
export function checkPhoneNum(rule, value, callback) {
  const phoneRegex = /^([0-9-]+)$/
  if (value && !phoneRegex.test(value)) {
    callback(new Error(vm.$t('common.validate_err.phone_format_error')))
  } else {
    callback()
  }
}

/**
 * 验证是否符合MID格式，是数字、字母组成、最小10位
 * @param rule
 * @param value
 * @param callback
 */
export function checkMID(rule, value, callback) {
  if (value) {
    if (value.length < 10) {
      callback(new Error(vm.$t('common.validate_err.mid_len_error')))
    } else {
      const MIDRegex = /^[A-Za-z0-9]+$/
      if (value && !MIDRegex.test(value)) {
        callback(new Error(vm.$t('common.validate_err.mid_format_error')))
      } else {
        callback()
      }
    }
  } else {
    callback()
  }
}

/**
 * 验证是否符合TID格式，是数字、字母组成、最小6位
 * @param rule
 * @param value
 * @param callback
 */
export function checkTID(rule, value, callback) {
  if (value) {
    if (value.length < 6) {
      callback(new Error(vm.$t('common.validate_err.tid_len_error')))
    } else {
      const MIDRegex = /^[A-Za-z0-9]+$/
      if (value && !MIDRegex.test(value)) {
        callback(new Error(vm.$t('common.validate_err.tid_format_error')))
      } else {
        callback()
      }
    }
  } else {
    callback()
  }
}
